home *** CD-ROM | disk | FTP | other *** search
- /* ran.h - define constants, data types, and files used in random number
- ** generator
- **
- ** Author: Kent E. Holsinger
- **
- ** Revision history
- ** ----------------
- **
- ** Version 1.0 -- 24 January 1990
- ** Original version of Knuth additive random number generator
- **
- ** Version 1.1 -- 24 January 1990
- ** ran() changed to macro operating on long
- **
- ** Version 2.1 -- 31 December 1990
- ** Added Marsaglia generator with conditional compilation
- **
- ** Version 2.3
- ** Converted both generators to return unsigned long
- **
- */
-
- #define RAN_MAR /* either RAN_MAR or RAN_KNU must be defined here */
- /* #define RAN_KNU /* either RAN_MAR or RAN_KNU must be defined here */
-
-
- /* CONSTANT AND MACRO DEFINITIONS */
- #ifdef RAN_KNU
- #define NO_NUMBERS 0xffffffff
- #define CONV_REAL 4294967296.0
- #define RND_BITS 32
- #define RND_BITMSK 0xffffffff
- #endif
- #ifdef RAN_MAR
- #define NO_NUMBERS 16777216
- #define CONV_REAL 16777216.0
- #define RND_BITS 24
- #define RND_BITMSK 0x00ffffff
- #endif
- #define ran() ((double)irand()/CONV_REAL)
-
- /* FUNCTION PROTOTYPES */
- #ifdef __STDC__
- void setup(unsigned long *seed);
- unsigned long irand(void);
- int poiss(double mean);
- int binom(int n, double p);
- #else
- void setup();
- unsigned long irand();
- int poiss();
- int binom();
- #endif
-
-